home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-osids-cldap-00.txt < prev    next >
Text File  |  1993-10-27  |  17KB  |  476 lines

  1.  
  2. Network Working Group                                       Alan Young
  3. INTERNET-DRAFT                               Union Bank of Switzerland
  4. <draft-ietf-osids-cldap-00.txt>                      Expires 20 Apr 93
  5.  
  6.  
  7.          Connection-less Lightweight Directory Access Protocol
  8.  
  9.  
  10.  
  11. 1.  Status of this Memo
  12.  
  13. This draft document will be submitted to the RFC Editor as a standards
  14. document. Distribution of this memo is unlimited. Please send comments
  15. to the authors, or the discussion group <osi-ds@cs.ucl.ac.uk>.
  16.  
  17. This document is an Internet Draft.  Internet Drafts are working docu-
  18. ments of the Internet Engineering Task Force (IETF), its Areas, and its
  19. Working Groups. Note that other groups may also distribute working docu-
  20. ments as Internet Drafts).
  21.  
  22. Internet Drafts are draft documents valid for a maximum of six months.
  23. Internet Drafts may be updated, replaced, or obsoleted by other docu-
  24. ments at any time.  It is not appropriate to use Internet Drafts as
  25. reference material or to cite them other than as a "working draft" or
  26. "work in progress."
  27.  
  28. Please check the I-D abstract listing contained in each Internet Draft
  29. directory to learn the current status of this or any other Internet
  30. Draft.
  31.  
  32. 2.  Abstract
  33.  
  34. The protocol described in this document is designed to provide access to
  35. the Directory while not incurring the resource requirements of the
  36. Directory Access Protocol (DAP).  In particular, it is aimed at avoiding
  37. the elapsed time that is associated with connection-oriented communica-
  38. tion and it facilitates use of the directory in a manner analagous to
  39. the DNS [6,7].  It is specifically targeted at simple lookup applica-
  40. tions that require to read a small number of attribute values from a
  41. single entry.  It is intended to be a complement to DAP and LDAP [5].
  42. The protocol specification draws heavily on that of LDAP.
  43.  
  44. 3.  Background
  45.  
  46. The Directory can be used as a repository for many kinds of information.
  47. The full power of DAP is unnecessary for applications that require sim-
  48. ple read access to a few attribute values. Applications addressing is a
  49. good example of this type of use where and application entity needs to
  50.  
  51.  
  52.  
  53. Expires 20 Apr 93                                       [Page 1]
  54.  
  55.  
  56.  
  57.  
  58.  
  59. CLDAP                                                       October 1993
  60.  
  61.  
  62. determine the Presentation Address (PA) of a peer entity given that
  63. peer's Application Entity Title (AET). If the AET is a Directory Name
  64. (DN) then the required result can be obtained from the PA attribute of
  65. the Directory entry identified by the AET.  This is very similar to DNS.
  66.  
  67. Use of DAP to achieve this functionality involves a significant number
  68. of network exchanges:
  69.  
  70.       ___________________________________________________________
  71.      | # |      Client (DUA)        DAP        Server (DSA)     |
  72.      |___|______________________________________________________|
  73.      |  1|  N-Connect.request       ->                          |
  74.      |  2|                          <-    N-Connect.response    |
  75.      |  3|  T-Connect.request       ->                          |
  76.      |  4|                          <-    T-Connect.response    |
  77.      |   |  S-Connect.request,                                  |
  78.      |   |  P-Connect.request,                                  |
  79.      |   |  A-Associate.request,                                |
  80.      |  5|  DAP-Bind.request        ->                          |
  81.      |   |                                S-Connect.response,   |
  82.      |   |                                P-Connect.response,   |
  83.      |   |                                A-Associate.response, |
  84.      |  6|                          <-    DAP-Bind.response     |
  85.      |  7|  DAP-Read.request        ->                          |
  86.      |  8|                          <-    DAP-Read.response     |
  87.      |   |  S-Release.request,                                  |
  88.      |   |  P-Release.request,                                  |
  89.      |   |  A-Release.request,                                  |
  90.      |  9|  DAP-Unbind.request      ->                          |
  91.      |   |                                S-Release.response,   |
  92.      |   |                                P-Release.response,   |
  93.      |   |                                A-Release.response,   |
  94.      | 10|                          <-    DAP-Unbind.response   |
  95.      |   |  T-Disconnect.request,                               |
  96.      | 11|  N-Disconnect.request    ->                          |
  97.      |   |                                T-Disconnect.response,|
  98.      | 12|                          <-    N-Disconnect.response |
  99.      |___|______________________________________________________|
  100.  
  101. This is 10 packets before the application can continue, given that it
  102. can probably do so after issuing the T-Disconnect.request.  (Some minor
  103. variations arise depending upon the class of Network and Transport ser-
  104. vice that is being used; for example use of TP4 over CLNS reduces the
  105. packet count by two.) LDAP is no better in the case where the LDAP
  106. server uses full DAP to communicate with the Directory:
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. Expires 20 Apr 93                                       [Page 2]
  114.  
  115.  
  116.  
  117.  
  118.  
  119. CLDAP                                                       October 1993
  120.  
  121.  
  122.   ____________________________________________________________________
  123.  |  # |   Client     LDAP     LDAP server      DAP         DSA       |
  124.  |____|______________________________________________________________|
  125.  |  1 |  TCP SYN      ->                                             |
  126.  |  2 |               <-    TCP SYN ACK                              |
  127.  |  3 |  BindReq      ->                                             |
  128.  |  4 |                     N-Connect.req      ->                    |
  129.  |  5 |                                        <-    N-Connect.res   |
  130.  |  6 |                     T-Connect.req      ->                    |
  131.  |  7 |                                        <-    T-Connect.res   |
  132.  |  8 |                     DAP-Bind.req       ->                    |
  133.  |  9 |                                        <-    DAP-Bind.res    |
  134.  | 10 |               <-    BindRes                                  |
  135.  | 11 |  SearchReq    ->                                             |
  136.  | 12 |                     DAP-Search.req     ->                    |
  137.  | 13 |                                        <-    DAP-Search.res  |
  138.  | 14 |               <-    SearchRes                                |
  139.  | 15 |  TCP FIN      ->                                             |
  140.  | 16 |                     DAP-Unbind.req     ->                    |
  141.  | 17 |                                        <-    DAP-Unbind.res  |
  142.  | 18 |                     N-Disconnect.req   ->                    |
  143.  | 19 |                                        <-    N-Disconnect.res|
  144.  |____|______________________________________________________________|
  145.  
  146. Here there are 14 packets before the application can continue.  Even if
  147. the LDAP server is on the same host as the DSA (so packet delay is
  148. negligible), or if the DSA supports LDAP directly, then there are still
  149. 6 packets.
  150.                   ____________________________________
  151.                  | #|   Client     LDAP   LDAP server|
  152.                  |  |                                |
  153.                  |__|________________________________|
  154.                  | 1|  TCP SYN      ->               |
  155.                  | 2|               <-    TCP SYN ACK|
  156.                  | 3|  BindReq      ->               |
  157.                  | 4|               <-    BindRes    |
  158.                  | 5|  SearchReq    ->               |
  159.                  | 6|               <-    SearchRes  |
  160.                  |__|________________________________|
  161.  
  162.  
  163. This protocol provides for simple access to the Directory where the
  164. delays inherent in the above exchanges are unacceptable and where the
  165. additional functionality provided by connection-mode operation is not
  166. required.
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173. Expires 20 Apr 93                                       [Page 3]
  174.  
  175.  
  176.  
  177.  
  178.  
  179. CLDAP                                                       October 1993
  180.  
  181.  
  182. 4.  Protocol Model
  183.  
  184. CLDAP is based directly on LDAP [5] and inherits most of the key aspects
  185. of the LDAP protocol:
  186.  
  187. -    Many protocol data elements are encoding as ordinary strings (e.g.,
  188.      Distinguished Names).
  189.  
  190. -    A lightweight BER encoding is used to encode all protocol elements.
  191.  
  192. It is different to LDAP in that:
  193.  
  194. -    Protocol elements are carried directly over UDP or other
  195.      connection-less transport, bypassing much of the
  196.      session/presentation overhead and that of connections (LDAP uses a
  197.      connection-mode transport service).
  198.  
  199. -    The Bind and Unbind operations are not available.
  200.  
  201. The definitions of protocol elements are inherited from LDAP.
  202.  
  203. The general model adopted by this protocol is one of clients performing
  204. protocol operations against servers. In this model, this is accomplished
  205. by a client transmitting a protocol request describing the operation to
  206. be performed to a server, which is then responsible for performing the
  207. necessary operations on the Directory.  Upon completion of the necessary
  208. operations, the server returns a response containing any results or
  209. errors to the requesting client.
  210.  
  211. Note that, although servers are required to return responses whenever
  212. such responses are defined in the protocol, there is no requirement for
  213. synchronous behaviour on the part of either client or server implementa-
  214. tions: requests and responses for multiple operations may be exchanged
  215. by client and servers in any order, as long as servers eventually send a
  216. response for every request that requires one. Because the protocol is
  217. implemented over a connection-less transport service clients must be
  218. prepared for either requests or responses to be lost.  Clients should
  219. use a retry mechanism with timeouts in order to achieve the desired
  220. level of reliability.  It is not necessary for a client to abandon any
  221. requests to which no response has been received and for which a reply is
  222. no longer required (because the request has been timed out), but they
  223. are not prohibited from doing so.
  224.  
  225. Consistent with the model of servers performing protocol operations on
  226. behalf of clients, it is also to be noted that protocol servers are
  227. expected to handle referrals without resorting to the return of such
  228. referrals to the client. This protocol makes no provisions for the
  229. return of referrals to clients, as the model is one of servers ensuring
  230.  
  231.  
  232.  
  233. Expires 20 Apr 93                                       [Page 4]
  234.  
  235.  
  236.  
  237.  
  238.  
  239. CLDAP                                                       October 1993
  240.  
  241.  
  242. the performance of all necessary operations in the Directory, with only
  243. final results or errors being returned by servers to clients.
  244.  
  245. Note that this protocol can be mapped to a strict subset of the direc-
  246. tory abstract service, so it can be cleanly provided by the DAP.
  247.  
  248. 5.  Mapping Onto Transport Services
  249.  
  250. This protocol is designed to run over connection-less transports, with
  251. all 8 bits in an octet being significant in the data stream.  Specifica-
  252. tions for two underlying services are defined here, though others are
  253. also possible.
  254.  
  255. 5.1.  User Datagram Protocol (UDP)
  256.  
  257. The LDAPMessage PDUs are mapped directly onto UDP datagrams.  Only one
  258. request may be sent in a single datagram. Only one response may be sent
  259. in a single datagram with the exception, as an option, that multiple
  260. search responses resulting from a single search request may be sent in a
  261. single datagram.  Server implementations running over the UDP should
  262. provide a protocol listener on port 389.
  263.  
  264. 5.2.  Connection-less Transport Service (CLTS)
  265.  
  266. Each LDAPMessage PDU is mapped directly onto T-Unit-Data with the excep-
  267. tion that multiple search responses resulting from a single search
  268. request may be sent in a single T-Unit-Data.
  269.  
  270. 6.  Elements of Protocol
  271.  
  272. The protocol is the same as LDAP with the restriction that Bind and
  273. Unbind and not available. The following operations are available:
  274.  
  275.      Search
  276.      Modify
  277.      Add
  278.      Delete
  279.      ModifyRDN
  280.      Compare
  281.      Abandon
  282.  
  283. Given the lack of Bind, and the consequent lack of identification of the
  284. Directory User to the Directory Service, one would not generally expect
  285. Modify, Add, Delete or ModifyRDN to be honoured by the Directory Ser-
  286. vice. They are not however, excluded from the protocol.
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293. Expires 20 Apr 93                                       [Page 5]
  294.  
  295.  
  296.  
  297.  
  298.  
  299. CLDAP                                                       October 1993
  300.  
  301.  
  302. 6.1.  Errors
  303.  
  304. The following error code is added to the LDAPResult.resultCode enumera-
  305. tion of [5]:
  306.  
  307.                              resultsTooLarge              (70),
  308.  
  309. This error will be returned when the LDAPMessage PDU containing the
  310. results of an operation are too large to be sent in a single datagram or
  311. PDU or, in the case that the multiple results of a search are to be
  312. returned in a single datagram or PDU, that these combined results are
  313. too large.
  314.  
  315. 6.2.  Example
  316.  
  317. A simple lookup can be performed in 4 packets. This is reduced to 2 if
  318. either the DSA implements the CLDAP protocol, the CLDAP server has a
  319. cache of the desired results, or the CLDAP server and DSA are co-located
  320. such that there is insignificant delay between them.
  321.  
  322.     _______________________________________________________________
  323.    | #|   Client     CLDAP    CLDAP server    DAP        DSA      |
  324.    |__|___________________________________________________________|
  325.    | 1|  SearchReq    ->                                          |
  326.    | 2|                      DAP-Search.req   ->                  |
  327.    | 3|                                       <-    DAP-Search.res|
  328.    | 4|               <-     SearchRes                            |
  329.    |__|___________________________________________________________|
  330.  
  331.  
  332. 7.  Implementation Considerations
  333.  
  334. The following subsections provide guidance on the implementation of
  335. clients and servers using the CLDAP protocol.
  336.  
  337. 7.1.  Server Implementations
  338.  
  339. Given that the goal of this protocol is to minimise the elapsed time
  340. between making a directory request and receiving the response, a server
  341. which uses DAP to access the directory should use techniques that assist
  342. in this.
  343.  
  344. -    A server should not be too keen to unbind from the Directory during
  345.      idle periods or should remain bound permanently.
  346.  
  347. -    Cacheing of results is highly desirable but this must be tempered
  348.      by the need to provide up-to-date results given the lack of a cache
  349.      invalidation protocol in DAP (either implicit via timers or expli-
  350.      cit) and the lack of a dontUseCopy service control in the protocol.
  351.  
  352.  
  353. Expires 20 Apr 93                                       [Page 6]
  354.  
  355.  
  356.  
  357.  
  358.  
  359. CLDAP                                                       October 1993
  360.  
  361.  
  362. Of course these issues are irrelevant if the CLDAP protocol is directly
  363. supported by a DSA.
  364.  
  365. 7.2.  Client Implementations
  366.  
  367. For simple lookup applications, use of a retry algorithm with multiple
  368. servers similar to that commonly used in DNS stub resolver implementa-
  369. tions is recommended.  The location of a CLDAP server or servers may be
  370. better specified using IP addresses (simple or broadcast) rather than
  371. names that must first be looked up in another directory such as DNS.
  372.  
  373. 8.  Security Considerations
  374.  
  375. This protocol provides no facilities for authentication. It is expected
  376. that servers will bind to the Directory either anonymously or using sim-
  377. ple authentication without a password.
  378.  
  379. 9.  Bibliography
  380.  
  381. [1]  The Directory: Overview of Concepts, Models and Service.  CCITT
  382.      Recommendation X.500, 1988
  383.  
  384. [2]  Information Processing Systems -- Open Systems Interconnection --
  385.      The Directory: Overview of Concepts, Models and Service.  ISO/IEC
  386.      JTC 1/SC21; International Standard 9594-1, 1988
  387.  
  388. [3]  The Directory: Models.  CCITT Recommendation X.501 ISO/IEC JTC
  389.      1/SC21; International Standard 9594-2, 1988
  390.  
  391. [4]  The Directory: Abstract Service Definition.  CCITT Recommendation
  392.      X.511, ISO/IEC JTC 1/SC21; International Standard 9594-3, 1988
  393.  
  394. [5]  X.500 Lightweight Directory Access Protocol.  W. Yeong, T. Howes,
  395.      S. Kille; RFC 1487, July 1993.
  396.  
  397. [6]  Domain names - implementation and specification.  P. Mockapetris;
  398.      RFC 1035, November 1987.
  399.  
  400. [7]  Domain names - concepts and facilities.  P. Mockapetris; RFC 1034,
  401.      November 1987.
  402.  
  403. 10.  Author's Addresses
  404.  
  405.    Alan Young
  406.    Union Bank of Switzerland
  407.    VA213- EFTS-YON
  408.    Postfach
  409.    CH-8021 Zurich
  410.  
  411.  
  412.  
  413. Expires 20 Apr 93                                       [Page 7]
  414.  
  415.  
  416.  
  417.  
  418.  
  419. CLDAP                                                       October 1993
  420.  
  421.  
  422.    +41 1 23 67866
  423.    ALAN.YOUNG@ZH014.UBS.UBS.CH
  424.    G=ALAN; S=YOUNG; OU=ZH014; O=UBS; P=UBS; A=ARCOM; C=CH
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473. Expires 20 Apr 93                                       [Page 8]
  474.  
  475.  
  476.